﻿namespace Microsoft.AspNetCore.Identity
{
    /// <summary>
    /// 提供辅助方法以处理 <see cref="IdentityError"/> 集合的工具类
    /// </summary>
    public static class IdentityHelper
    {
        /// <summary>
        /// 将 <see cref="IdentityError"/> 集合转换为包含错误代码和描述的字符串
        /// </summary>
        /// <param name="errors">要转换的 <see cref="IdentityError"/> 集合</param>
        /// <returns>包含错误代码和描述的字符串，每个错误使用换行符分隔</returns>
        public static string SumErrors(this IEnumerable<IdentityError> errors)
        {
            // 使用 LINQ 查询，将每个 IdentityError 转换为格式化的字符串
            var strs = errors.Select(e => $"code={e.Code},message={e.Description}");

            // 使用换行符将格式化的字符串连接起来，形成最终的错误信息字符串
            return string.Join('\n', strs);
        }
    }
}